	const whiteList = ['/pages/login/login','/pages/login/register/register']
	const list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]
	
	function hasPermission(url) {
		// 在白名单中或有token，直接跳转
		if (whiteList.indexOf(url) !== -1 || uni.getStorageSync("TOKEN")) {
			return true;
		}
		return false;
	}
	
	list.forEach((item) => {
		uni.addInterceptor(item, {
			// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
			invoke(e) {
				if (!hasPermission(e.url)) {
					
					// 将用户的目标路径保存下来
	                                // 这样可以实现 用户登录之后，直接跳转到目标页面
					uni.setStorageSync("URL", e.url)
	
					uni.navigateTo({
						url: "/pages/login/login",
					});
					
					return false;
				}
				return true;
			}
		});
	})
	
uni.addInterceptor('request', {
  invoke(args) {
    // request 触发前拼接 url
    // args.url = 'https://www.example.com/'+args.url
  },
  success(args) {
	  if(args.data.code == 401){
		  uni.setStorageSync("TOKEN",'')
		  uni.reLaunch({
		  	url:'/pages/login/login'
		  })
	  }
  },
  fail(err) {
    console.log('interceptor-fail',err)
  },
  complete(res) {
    console.log('interceptor-complete',res)
  }
})

uni.addInterceptor({
  returnValue(args) {
    // 只返回 data 字段
    return args.data
  }
})
